home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / cross / GBDK-2.0.lha / GBDK / examples / banks.c < prev    next >
C/C++ Source or Header  |  1998-10-30  |  1KB  |  60 lines

  1. #include <gb.h>
  2. #include <stdio.h>
  3.  
  4. UBYTE var_internal;  /* In internal RAM */
  5. extern UBYTE var_0;  /* In external RAM bank 0 */
  6. extern UBYTE var_1;  /* In external RAM bank 1 */
  7. extern UBYTE var_2;  /* In external RAM bank 2 */
  8. extern UBYTE var_3;  /* In external RAM bank 3 */
  9.  
  10. void bank_1();
  11. void bank_2();
  12. void bank_3();
  13.  
  14. void bank_fixed()
  15. {
  16.   puts("I'm in fixed ROM");
  17. }
  18.  
  19. void print_var(UBYTE bank)
  20. {
  21.   SWITCH_RAM_MBC1(bank);
  22.   printf("Var_%u is %u\n");
  23. }
  24.  
  25. void main()
  26. {
  27.   puts("Program Start...");
  28.  
  29.   ENABLE_RAM_MBC1;
  30.   var_internal = 1;
  31.   SWITCH_RAM_MBC1(0);
  32.   var_0 = 2;
  33.   SWITCH_RAM_MBC1(1);
  34.   var_1 = 3;
  35.   SWITCH_RAM_MBC1(2);
  36.   var_2 = 4;
  37.   SWITCH_RAM_MBC1(3);
  38.   var_3 = 5;
  39.  
  40.   bank_fixed();
  41.   SWITCH_ROM_MBC1(1);
  42.   bank_1();
  43.   SWITCH_ROM_MBC1(2);
  44.   bank_2();
  45.   SWITCH_ROM_MBC1(3);
  46.   bank_3();
  47.  
  48.   printf("Var is %u\n", var_internal);
  49.   SWITCH_RAM_MBC1(0);
  50.   printf("Var_0 is %u\n", var_0);
  51.   SWITCH_RAM_MBC1(1);
  52.   printf("Var_1 is %u\n", var_1);
  53.   SWITCH_RAM_MBC1(2);
  54.   printf("Var_2 is %u\n", var_2);
  55.   SWITCH_RAM_MBC1(3);
  56.   printf("Var_3 is %u\n", var_3);
  57.  
  58.   puts("The End...");
  59. }
  60.